package com.iflytek.jcy.supervise.job.component.httpinterface.result;

import java.util.List;
import java.util.Map;

import lombok.Data;

/**
 * @author <a href=mailto:ktyi@iflytek.com>伊开堂</a>
 * @date 2022/1/18
 */
@Data
public class OuterUserInfo {

    private UserInfo userInfo;

    private Unit unit;

    private Map<String, Object> xtxx;
    private List<Role> roles;
    private List<Department> departments;

    private Boolean isSuperAdmin;

    @Data
    public static class UserInfo {
        // 检察人员身份
        private String jcrysfMc;
        // 检察人员身份代码
        private String jcrysfDm;
        // 人员类型名称
        private String rylxMc;
        // 人员类型编码
        private String rylxBm;
        // 工作证号
        private String gzzh;
        // 单位编码
        private String dwbm;
        // 在职单位编码
        private Object zzdwbm;
        // 电子邮件
        private String dzyj;
        // 电子邮件
        private Object dzyj2;
        // 电子邮件
        private Object dzyj3;
        // 在职状态（1：在职2：停职 3：借调 4：调职5：借调结束）
        private String zzzt;
        // 是否临时人员
        private String sflsry;
        // 登录别名
        private String dlbm;
        // 照片
        private Object zp;
        // 电话号码
        private String dhhm;
        // 电话号码
        private Object dhhm2;
        // 电话号码
        private Object dhhm3;
        // 人员编码
        private String rybm;
        // 性别
        private String xb;
        // 身份证号
        private String sfzh;
        // 在职单位名称
        private Object zzdwmc;
        // 名称
        private String mc;
        // 单位名称
        private String dwmc;
    }

    @Data
    public static class Unit {
        // 序号
        private Integer xh;
        // 单位级别
        private String dwjb;
        // 单位类别
        private Object dwlb;
        // 单位属性（0：普通 1：铁检）
        private String dwsx;
        // 单位编码
        private String dwbm;
        // 统一社会信用代码
        private Object tyshxydm;
        // 单位简称
        private String dwjc;
        // 单位名称
        private String dwmc;
        // 父单位编码
        private String fdwbm;
    }

    @Data
    public static class Department {
        // 部门案号简称
        private String bmahjc;
        // 是否案管部门
        private String sfagbm;
        // 部门文号简称
        private String bmwhjc;
        // 版本编码
        private Object bbbm;
        // 是否临时部门
        private String sflsbm;
        // 部门简称
        private String bmjc;
        // 单位编码
        private String dwbm;
        // 备注
        private String bz;
        // 部门编码
        private String bmbm;
        // 是否承办部门
        private String sfcbbm;
        // 部门类别
        private Object bmlb;
        // 部门序号
        private String bmxh;
        // 父部门编码
        private Object fbmbm;
        // 部门名称
        private String bmmc;

    }

    @Data
    public static class Role {
        // 角色编码
        private String jsbm;
        // 角色名称
        private String jsmc;
        // 角色序号
        private Integer jsxh;
        // 单位编码
        private String dwbm;
        // 部门编码
        private String bmbm;
    }
}
